home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
the-w.com
/
2015.02.the-w.com.tar
/
the-w.com
/
pub
/
users
/
chris
/
AEC.sit.hqx
/
Apple Error Codes '98.rsrc
/
TEXT_2300_uText.txt
< prev
next >
Wrap
Text File
|
1997-12-02
|
19KB
|
587 lines
ΓùèΓùè
Sad Mac Error Codes
Γùè
TITLE
Macintosh: "Sad Mac" Error Code Meaning
Γùè
Article ID: 7748
Created: 7/2/91
Modified: 9/9/97
TOPIC
When I turn on my Macintosh, I get a black screen with a "sad Macintosh" face and the numbers
020016. There is no listing for this error code in any of my manuals. What does it mean?
DISCUSSION
The particular error code that appears with the "sad Macintosh" is not
as important as WHEN it occurs. If the Macintosh can start up from a
different system diskette, then the problem is probably with the system
software on the other disk. System problems are usually identified when
you get a "happy Macintosh" face and the "Welcome to Macintosh" screen
before the "sad Macintosh."
If the "sad Macintosh" face appears immediately at power up, that usually
suggests an issue with the logic board or memory. Try starting up from a
floppy disk before assuming it's a hardware problem.
Sad Mac Error Codes Description
On the Original ROMs (Macintosh 128k, 512k, 512ke, Plus):
When you press the interrupt button on the side of your Macintosh when
starting up, you should get a sad Mac icon with '0F000D' and some bits
cycling under the icon indicating it is performing a memory test.
This numeric code is in two parts:
ΓÇó The first two characters are the class code. The class code tells
what part of the diagnostic program found the error.
ΓÇó The second four are the sub code. The sub class code tells what the
error was. In the case of a bad RAM chip, the sub class identifies
the bad chip (this was very helpful to homegrown upgraders).
Class Code                             Sub Code 
1 = ROM test failed                    Meaningless
2 = Memory test - bus subtest          identifies bad chips
3 = Memory test - byte write           identifies bad chips
4 = Memory test - Mod3 test            identifies bad chips
5 = Memory test - address uniqueness   identifies bad chips
 
Single Chip Identification
Data Bit    Location   Sub Code Bits
 0             F5           0001
 1             F6           0002
 2             F7           0004
 3             F8           0008
 4             F9           0010
 5             F10          0020
 6             F11          0040
 7             F12          0080
 8             G5           0100
 9             G6           0200
10             G7           0400
11             G8           0800
12             G9           1000
13             G10          2000
14             G11          4000
15             G12          8000
Class Code      Sub Code
F = Exception   0001 Bus error
                0002 Address error
                0003 Illegal instruction
                0004 Zero divide
                0005 Check instruction
                0006 Traps instruction
                0007 Privilege violation
                0008 Trace
                0009 Line 1010
                000A Line 1111
                000B Other exception
                000C Nothing
                000D NMI (normal indication)
                0064 Couldnt Read System File into Memory
Macintosh SE & Macintosh II ROMs: 
The Sad Mac error codes have been changed to incorporate additional
power for testing and to support the 32-bit world. Generally, the
same codes are used for 68000 exceptions as the Macintosh, however
they are displayed differently.
Traditional
The traditional Macintosh error codes are displayed like this:
Γùè
0F0003
Where F indicates an exception occurred, and 3 indicates an illegal
instruction occurred. On the Macintosh SE and II, the display would
appear:
Γùè
0000000F
00000003
Note: 0000003 is a hex number.
Power On
The new power-on error codes have the following format:
Γùè
XXXXYYYY
ZZZZZZZZ
Where XXXX is internal test manager state information (ignore this),
YYYY contains codes that indicate either an exception code, or the
test number for a power on test failure. The ZZZZZZZZ code contains
additional failure information to help track down the problem.
YYYY Error Codes:
$0001   The ROM checksum test failed. Ignore the Z field.
$0002   The first small chunk of RAM to be tested failed. The Z field
        indicates which RAM Bit(s) failed. This small chunk of RAM is
        always in Bank B.   
        Example:   $AABBCCDD
                   AA=8 bit mask for bits 31-24
                   BB=8 bit mask for bits 23-16
                   CC=8 bit mask for bits 15-8
                   DD=8 bit mask for bits 7-0
$0003   The RAM test failed while testing bank B, after passing the chunk
        tested for code $0002. The Z field indicates which bits failed as
        in code $0002.
$0004   The RAM test failed while testing bank A. The Z field indicates
        which  bits failed as in code $0002.
$0005   The RAM External addressing test failed. The Z field indicates a
        failed address line.
$0006   Unable to properly address the VIA1 chip. The Z field is not
        applicable.
$0007   Unable to properly address the VIA2 chip (Macintosh II only).
The Z field is not applicable.
$0008   Unable to properly access the Front Desk Bus. The Z field is not
        applicable.
$0009   Unable to properly access the MMU. The Z field is not applicable.
$000A   Unable to properly access NuBus. The Z field is not applicable.
$000B   Unable to properly access the SCSI Chip. The Z field is not
        applicable.
$000C   Unable to properly access the IWM chip. The Z field is not
        applicable.
$000D   Unable to properly access the SCC Chip. The Z field is not
        applicable.
$000E   Failed Data Bus test. The Z field indicated the bad bit(s) as a
        32-bit mask for bits 0-31. This may indicate either a bad SIMM or
        data bus failure.
$000F   Reserved for Macintosh compatibility.
$FFxx   A 680xx exception occurred during power on testing.
        The xx indicates the exception:
        $01  Bus Error
        $02  Address Error
        $03  Illegal Instruction Error
        $04  Zero Divide
        $05  Check Instruction
        $06  cpTrapCC, Trap CC, Trap V
        $07  Privilege violation
        $08  Trace
        $09  Line A
        $0A  Line F
        $0B  unassigned
        $0C  CP protocol violation
        $0D  Format exception
        $0E  Spurious interrupt
        $0F  Trap 015 exception
        $10  Interrupt Level 1
        $11  Interrupt Level 2
        $12  Interrupt Level 3         
        $13  Interrupt Level 4
        $14  Interrupt Level 5
        $15  Interrupt Level 6
        $16  Interrupt Level 7
        $17  FPCP bra or set on unordered condition
        $18  FPCP inexact result
        $19  FPCP divide by zero
        $1A  FPCP underflow
        $1B  FPCP operand error
        $1C  FPCP overflow
        $1D  FPCP signalling NAN
        $1E  PMMU configuration
        $1F  PMMU illegal operation
        $20  PMMU access level violation
Macintosh Portable ROMs:
The bootup code in the Macintosh Portable contains a series of startup
tests that are run to ensure that the fundamental operations of the
machine are working properly. If any of those tests fail, a Sad Mac
icon appears on the screen with a code below that describes what failure
occurred. Here is a typical example of a Sad Mac display with an error
code below it:
SAD MAC CODE
05460203   =   (D7.L)
000OB6DB   =   (D6.L)
The two codes are actually the contents of the two CPU data registers
D6 and D7. The upper word (upper 4 hex digits, in this case 0546) of
D7 contains miscellaneous flags that are used by the start-up test
routines and are unimportant to just about everybody except a few test
engineers within Apple. The lower word of D7 is the major error code.
The major error code identifies the general area the test routines were
in when a failure occurred. D6 is the minor error and usually contains
additional information about the failure, something like a failed bit
mask.
SAD MAC CODE BROKEN DOWN
Test Flags    Major Error
 0546          0203
Minor Error   Minor Error
0000          B6DB
The major error is further broken into the upper byte that contains
the number of any 68000 exception that occurred ($00 meaning that no
exception occurred), and the lower byte that usually contains the
test that was being run at the time of failure. If an unexpected
exception occurred during aparticular test, then the exception number
is logically ORed into the major error code. This way both the exception
that occurred as well as the test that was running can be decoded from
the major error code:
SAD MAC CODE FURTHER BROKEN DOWN
68000 Exception    Test Code
02                  03
In this example, the code says that an address error exception ($0200)
occurred during the RAM test for Bank A ($03); $0200 ORed with
$03 = $0203.
Major Error Codes
Below is a brief description of the various test codes that might
appear in the major error code:
**Warning**: Some of these codes may mean slightly different things in
Macintosh models other than the Macintosh Portable. These descriptions
describe specifically how they are used in the Macintosh Portable.
$01   - ROM test failed. Minor error code is $FFFF, means nothing.
$02   - RAM test failed. Minor error code indicates which RAM bits
failed.
$05   - RAM external addressing test failed. Minor error code
indicates a failed address line.
$06   - Unable to properly access the VIA 1 chip during VIA
        initialization. Minor error code not applicable.
$08   - Data bus test at location eight bytes off of top of memory
failed.  Minor error code indicates the bad bits as a 16bit
mask for bits 1500. This may indicate either a bad RAM chip
or data bus failure.
$0B  -  Unable to properly access the SCSI chip. Minor error code not
        applicable.
$0C  -  Unable to properly access the IWM (or SWIM) chip. Minor error
code not applicable.
$0D  -  Not applicable to Macintosh Portable. Unable to properly access
the SCC chip.
        Minor error code not applicable.
$0E  -  Data bus test at location $0 failed. Minor error code indicates
        the bad bits as a 16bit mask for bits 1500. This may indicate
        either a bad RAM chip or data bus failure.
$10  -  Video RAM test failed. Minor error code indicates which RAM bits
        failed.
$11  -  Video RAM addressing test failed. Minor error code contains the
        following:        upper word    =       failed address (16-bit)
                   msb of lower word    =       data written    
                   lsb of lower word    =       data read
        Data value written also indicates which address line is being
        actively tested.
$12  -  Deleted
$13  -  Deleted
$14  -  Power Manager processor was unable to turn on all the power to
the board. This may have been due to a communication problem
with the Power Manager. If so, the minor error code contains a
Power Manager error code, explained in the next section.
$15  -  Power Manager failed its self-test. Minor error code contains
the following:
msw  = error status of transmission to power manager.
                 lsw  = Power Manager self-test results (0 means it
                        passed, non-zero means it failed)
$16  -  A failure occurred while trying to size and configure the RAM.
        Minor error code not applicable.
Minor error codesPower Manager Processor Failures
If a communication problem occurs during communication with the Power
Manager, the following error codes will appear somewhere in the minor
error code (usually in the lower half of the code, but not always):
$CD38   Power Manager was never ready to start handshake.
$CD37   Timed out waiting for reply to initial handshake.
$CD36   During a send, Power Manager did not start a handshake.
$CD35   During a send, Power Manager did not finish a handshake.
$CD34   During a receive, Power Manager did not start a handshake.
$CD33   During a receive, Power Manager did not finish a handshake.
Diagnostic Code Summary
Below is a summarized version of the Sad Mac error codes:
Test Codes
      $01     ROM checksum test.
      $02     RAM test.
      $05     RAM addressing test.
      $06     VIA 1 chip access.
      $08     Data bus test at top of memory.
      $0B     SCSI chip access.
      $0C     IWM (or SWIM) chip access.
      $0D     Not applicable to Macintosh Portable. SCC chip access.
      $0E     Data bus test at location $0.
      $10     Video RAM test.
      $11     Video RAM addressing test.
      $14     Power Manager board power on.  
      $15     Power Manager self-test.
      $16     RAM sizing.
Power Manager Communication Error Codes
      $CD38   Initial handshake.
      $CD37   No reply to initial handshake.
      $CD36   During send, no start of a handshake.
      $CD35   During a send, no finish of a handshake.
      $CD34   During a receive, no start of a handshake.
      $CD33   During a receive, no finish of a handshake.
CPU Exception Codes (as used by the startup tests)
      $0100   Bus error exception code
      $0200   Address error exception code
      $0300   Illegal error exception code
      $0400   Zero divide error exception code
      $0500   Check inst error exception code
      $0600   cpTrapcc,Trapcc,TrapV exception code
      $0700   Privilege violation exception code
      $0800   Trace exception code
      $0900   Line A exception code
      $0A00   Line F exception code
      $0B00   Unassigned exception code
      $0C00   CP protocol violation
      $0D00   Format exception
      $0E00   Spurious interrupt exception code
      $0F00   Trap inst exception code
      $1000   Interrupt level 1
      $1100   Interrupt level 2
      $1200   Interrupt level 3
      $1300   Interrupt level 4
      $1400   Interrupt level 5
      $1500   Interrupt level 6
      $1600   Interrupt level 7